环境准备
linux 环境
docker 环境
docker-compose 环境
python3.7
打包准备
dockerfile 文件夹下有四个文件,将相应文件放到linux 的dockerfile文件夹下
1 | dockerfile |
Dockerfile
1 | #基于的基础镜像 |
flask_model_zcy.py
注意 model__state_dict = paddle.load(‘./save_dir_final.pdparams’) 此处模型位置写正确
1 | import io |
paddlezcy.yml
1 | #docker-compose -f paddlezcy.yml up -d |
requirements.txt
可由 pip freeze > requirements.txt 命令生成
1 | astor==0.8.1 |
开始打包
下载依赖到本地
1 | pip download -d py_pkgs -r requirements.txt -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com |
注意需要在linux 下执行,因打包docker 的基础镜像也为linux的系统
依赖比较多下载时间比较长,建议在网络环境较好的情况下进行
执行之后生成 py_pkgs 文件夹,内为需要的python 依赖包
执行打包命令
1 | docker build -t paddlezcy:v1 . |
docker 打包命令注意不要漏掉命令的最后“.”
打包时间比较长,建议在网络环境较好的情况进行
查看镜像包
1 | (paddle) [root@localhost dockerfile]# docker images |
启动服务
使用docker-compose启动服务
1 | docker-compose -f paddlezcy.yml up -d |
查看服务
1 | (paddle) [root@localhost dockerfile]# docker ps |
问题解决
注意,这些问题在服务启动,或则调用的时候出现,需要在打包的时候进行处理,
docker logs -f 服务id 进行查看日志
问题1
1 | C++ Traceback (most recent call last): |
解决方式
1.降低 opencv-python版本,从4.4版本降低到4.2版本,
1 | sudo pip install --upgrade opencv-python==4.2.0.32 |
此处把requirements.txt 中的依赖调低
若opencv-python 调低之后显示无版本,则按照提示版本进行调整
2.通常很难出现这样的错误。只能一点点排除:
1.磁盘空间满了。 比如/tmp, /var 或者是/分区满了。
2.文件读写错误,在临时目录里,某些文件被锁,无法读写导致
3.内存不足(这个可能性小),你可以将占用内存多的程序去掉
4.你是在虚拟机里运行,可能内存访问函数不能正确使用
5.有防火墙的问题
6.可能是权限的问题,比如某些程序需要超级用户的权限
7.程序本身有BUG,它预留的计算空间不够。你可以检查一下配置什么的,看看有没有设置预加载内存的配置。
内存不足,本次运行的时候正好遇到,建议将多余的程序进行关闭
问题2
1 | from .cv2 import * |
解决方式
ubuntu 系统
1 | apt install libgl1-mesa-glx |
mesa-libglapi.x86_64 18.3.4-12.el7_9
pygtk2-libglade.x86_64 2.24.0-9.el7
1 | 进行安装 |
yum install mesa-libglapi.x86_64 pygtk2-libglade.x86_64
1 |
|
http://192.168.23.134:5001/zcy
1 | 调用参数 |
{
“base64”:”/9j/2wCEA…..
}
1 | base64 传入的为图片的base64位编码,注意将data:image/jpeg;base64,前缀去掉 |
样本被预测为:gouqi
```
则验证服务调用成功
一辈子很短,努力的做好两件事就好;
第一件事是热爱生活,好好的去爱身边的人;
第二件事是努力学习,在工作中取得不一样的成绩,实现自己的价值,而不是仅仅为了赚钱;